package co.edu.usbcali.correspondencia.presentation.backingBeans;

import java.util.List;

import co.edu.usbcali.correspondencia.exceptions.ZMessManager;
import co.edu.usbcali.correspondencia.modelo.Usuario;
import co.edu.usbcali.correspondencia.presentation.businessDelegate.BusinessDelegatorView;
import co.edu.usbcali.correspondencia.utilities.FacesUtils;

import com.icesoft.faces.component.ext.HtmlInputText;

public class InicioView {

	private HtmlInputText txtLogin;
	private HtmlInputText txtPassword;

	public String action_iniciarSesion() throws Exception {
		String mensaje = "";
		try {
			String txtUsu = FacesUtils.checkString(txtLogin);
			String txtCon = FacesUtils.checkString(txtPassword);

			List<Usuario> u = BusinessDelegatorView.traerUsuario(txtUsu,
					txtCon);
			System.out.println(u.size());
			if (u.size() != 0) {
				Usuario usu = u.get(0);				
				if (usu.getTipoUsuario().getTpuCodigo().equals("1")) {
					String codpro = "";
					codpro = action_darCodigo(usu.getPersona().getPerCedula());
					FacesUtils.getSession().setAttribute("codPro", codpro);
					mensaje = "goToPropietario";
				} else if (usu.getTipoUsuario().getTpuCodigo().equals("2")) {
					mensaje = "goToAdminGlobal";
				} else if (usu.getTipoUsuario().getTpuCodigo().equals("3")) {
					mensaje = "goToArrendatario";
				} else if (usu.getTipoUsuario().getTpuCodigo().equals("4")) {
					mensaje = "goToVigilante";
				} else if (usu.getTipoUsuario().getTpuCodigo().equals("5")) {
					String codAdmin = "";
					codAdmin = traerCodigoAdminLocal(usu.getPersona().getPerCedula());
					FacesUtils.getSession().setAttribute("codAdminLoc",
							codAdmin);
					mensaje = "goToAdminLocal";
				}

				FacesUtils.getSession().setAttribute("usuario", usu);
			}
		} catch (ZMessManager e) {
			FacesUtils.addErrorMessage(e.getMessage());
		}
		return mensaje;
	}

	public String action_cerrarSesion() throws Exception {
		FacesUtils.getSession().removeAttribute("usuario");
		return "goInicio";
	}

	//Metodo que consulta el codigo del administrador local....
	public String traerCodigoAdminLocal(String usuCedula) throws Exception {
		String codAdmin = "";
		try {
			codAdmin = BusinessDelegatorView.traerCodigoAdminLocal(usuCedula);
		} catch (Exception e) {
			throw e;
		}
		return codAdmin;
	}

	//Pide El Codigo del PropietarioInmueble
	public String action_darCodigo(String usuCedula) throws Exception {
		String codigo = "";
		try {
			codigo = BusinessDelegatorView.getUsuarioParametro2(usuCedula);
		} catch (Exception e) {
			throw e;
		}
		return codigo;
	}

	public HtmlInputText getTxtLogin() {
		return txtLogin;
	}

	public void setTxtLogin(HtmlInputText txtLogin) {
		this.txtLogin = txtLogin;
	}

	public HtmlInputText getTxtPassword() {
		return txtPassword;
	}

	public void setTxtPassword(HtmlInputText txtPassword) {
		this.txtPassword = txtPassword;
	}

}
